﻿#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include <vector>
using namespace std;
//#include <algorithm>
#include <numeric>
#include <iterator>

/*
accumulate算法 计算容器元素累计总和
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param value累加值
*/
//accumulate(iterator beg, iterator end, value)

/*
fill算法 向容器中添加元素
@param beg 容器开始迭代器
@param end 容器结束迭代器
@param value t填充元素
*/
//fill(iterator beg, iterator end, value)

void testArithmeticGenerate()
{
	vector<int>v;
	for (int i = 0; i <= 100; ++i)
	{
		v.push_back(i);
	}

	//1.0~100的累计和；5050 第三个参数：起始累加值；
	int num = accumulate(v.begin(), v.end(), 1000);//0 --> 1000
	cout << "总和为：" << num << endl;//5050 --> 6050

	vector<int>vf;
	vf.resize(10);
	fill(vf.begin(), vf.end(), 100);
	copy(vf.begin(), vf.end(), ostream_iterator<int>(cout, " "));//100 100 100 100 100 100 100 100 100 100
}

//main338：常用算数生成算法
int main338()
{
	testArithmeticGenerate();

	system("pause");
	return EXIT_SUCCESS;
}